package com.zhixi.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhixi.common.R;
import com.zhixi.dto.SetmealDto;
import com.zhixi.pojo.Setmeal;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @author zhangzhixi
 * @description 针对表【setmeal(套餐)】的数据库操作Service
 * @createDate 2022-07-10 15:59:29
 */
public interface SetmealService extends IService<Setmeal> {

    /**
     * 新增套餐
     *
     * @param setmealDto 套餐数据传输对象
     */
    void saveSetmeal(SetmealDto setmealDto, HttpServletRequest request);

    /**
     * 查询套餐列表
     *
     * @param page     分页对象
     * @param pageSize 每页显示条数
     * @param name     套餐名称
     * @return 套餐列表
     */
    Page<Setmeal> pageWithSetmealDto(int page, int pageSize, String name);

    /**
     * 修改套餐状态
     *
     * @param id      套餐id
     * @param status  状态
     * @param request 请求对象
     */
    void updateStatus(Long[] id, int status, HttpServletRequest request);

    /**
     * 删除套餐
     *
     * @param ids 套餐id数组
     * @return 删除结果
     */
    R<String> delWithSetmealDish(Long[] ids);

    R<String> updateWithSetmealDish(Setmeal setmeal);

    /**
     * 移动端查询套餐列表
     *
     * @param categoryId 分类id
     * @param status     状态，0：未上架，1：已上架
     * @return 套餐列表
     */
    List<Setmeal> getSetmealList(Long categoryId, Long status);

    /**
     * 查询套餐详情
     *
     * @param id 套餐id
     * @return 套餐详情
     */
    Setmeal getSetmeal(Long id);
}
